其他
仓颉编程语言开发入门初体验
https://juejin.cn/post/7383374760577482771
原生智能化:仓颉编程语言内嵌了 AgentDSL 的编程框架,实现了自然语言与编程语言有机融合。多 Agent 协同,简化符号表达,模式可以自由组合,支持各类智能应用开发。 天生全场景:仓颉编程语言采用轻量化可缩放运行时和模块化分层设计,即使在资源受限的设备上也能流畅运行。同时,它支持全场景领域扩展,元编程和 eDSL 技术,可助力面向领域声明式开发。 高性能:仓颉编程语言采用全并发 GC,应用线程运行更加流畅,响应速度更快。轻量化线程设计进一步提升了并发性能,降低了开发成本。 强安全:仓颉编程语言将安全理念融入语言设计,帮助开发者专注于业务逻辑,减少安全漏洞的产生,实现“编码即安全”的愿景。
println("你好,仓颉")
}
> cjc hello.cj -o hello
> ./hello你好,仓颉
可变性修饰符:let 与 var,分别对应不可变和可变属性,可变性决定了变量被初始化后其值还能否改变,仓颉变量也由此分为不可变变量和可变变量两类。 可见性修饰符:private 与 public 等,影响全局变量和成员变量的可引用范围,详见后续章节的相关介绍。 静态性修饰符:static,影响成员变量的存储和引用方式,详见后续章节的相关介绍。
let a: Int64 = 20
var b: Int64 = 12
b = 23
println("${a}${b}")
}
let width: Int64
let height: Int64
public init(width: Int64, height: Int64) {
this.width = width
this.height = height
}
public func area() {
width * height
}
}
let width = r.width
let height = r.height
let a = r.area()
var i = 0
public func add() {
i += 1
}
}
mute函数
var i = 0
public mute func add() {
i += 1
}
}
int rand();
// stdio.h
int printf (const char *fmt, ...);
foreign func printf(fmt: CString, ...): Int32
main() {
let r = unsafe { rand() }
println("random number ${r}")
unsafe {
var fmt = LibC.mallocCString("Hello, No.%d\n")
printf(fmt, 1)
LibC.free(fmt)
}
}